iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Mobile Development

Android Studio 30天自我挑戰系列 第 5

[Android Studio 30天自我挑戰] 變更Spinner字體及背景樣式

  • 分享至 

  • xImage
  •  

Spinner選項的字體大小及背景都是可以更改的!
但Spinner的字體樣式及背景無法像Textview在activity_main元件裡直接設定

1.先於activity_main.xml新增Spinner元件

    <Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/spinner"/>

2.新增一個設定Spinner的字體大小及背景的xml檔,於app/res/layout/(新增一個xml檔)

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    //設定字體大小
    android:textSize="24sp"
    //設定文字顏色
    android:textColor="#FF0000FF"
    //設定背景顏色
    android:background="#ffd5d5"
    //設定字體樣式
    android:textStyle="bold"
    android:padding="5dp">
</TextView>

3.再新增一個設定Spinner選項列樣式的xml檔,於app/res/layout/(新增一個xml檔)

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    //設定字體大小
    android:textSize="24dp"
    //設定文字顏色
    android:textColor="#FFFF0000"
    //設定背景顏色
    android:background="#ffd5d5"
    //設定字體樣式
    android:textStyle="bold"
    android:padding="13dp">
</TextView>

4.設定完樣式後到MainActivity.java宣告Spinner並新增選項

Spinner spinner = findViewById(R.id.spinner);
List<String> country = Arrays.asList("Taiwan","Japan","Korean","America");

5.新增ArrayAdapter來放入List及樣式

//R.layout.選擇你新增的Spinner外觀的xml檔名
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), R.layout.my_selected_item , country);
//R.layout.選擇你新增的Spinner選項列外觀的xml檔名
adapter.setDropDownViewResource(R.layout.my_dropdown_item);
spinner.setAdapter(adapter);

這樣就可以變更你的Spinner字體樣式及背景顏色囉!
https://ithelp.ithome.com.tw/upload/images/20210819/20139258uHMWwGGaOn.png
https://ithelp.ithome.com.tw/upload/images/20210819/20139258ffYStqrr8O.png

完整MainActivity.java程式碼

package com.example.itspinner;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.AndroidException;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import java.util.Arrays;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinner = findViewById(R.id.spinner);
        List<String> country = Arrays.asList("Taiwan","Japan","Korean","America");
        ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), R.layout.my_selected_item , country);
        adapter.setDropDownViewResource(R.layout.my_dropdown_item);
        spinner.setAdapter(adapter);
    }
}

上一篇
[Android Studio 30天自我挑戰] 新增Spinner的兩種方式
下一篇
[Android Studio 30天自我挑戰] Toast浮動顯示快顯元件
系列文
Android Studio 30天自我挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言